Make WikiPage::getRevision() make use of Revision::newKnownCurrent()
authorAaron Schulz <aschulz@wikimedia.org>
Wed, 14 Sep 2016 23:57:54 +0000 (16:57 -0700)
committerAaron Schulz <aschulz@wikimedia.org>
Wed, 14 Sep 2016 23:57:54 +0000 (16:57 -0700)
Change-Id: Id06319b31bc523a5d514930c3d609af4d991453b

includes/page/WikiPage.php

index c09d0eb..6c0c4a8 100644 (file)
@@ -621,15 +621,18 @@ class WikiPage implements Page, IDBAccessObject {
                        // happened after the first S1 SELECT.
                        // http://dev.mysql.com/doc/refman/5.0/en/set-transaction.html#isolevel_repeatable-read
                        $flags = Revision::READ_LOCKING;
+                       $revision = Revision::newFromPageId( $this->getId(), $latest, $flags );
                } elseif ( $this->mDataLoadedFrom == self::READ_LATEST ) {
                        // Bug T93976: if page_latest was loaded from the master, fetch the
                        // revision from there as well, as it may not exist yet on a replica DB.
                        // Also, this keeps the queries in the same REPEATABLE-READ snapshot.
                        $flags = Revision::READ_LATEST;
+                       $revision = Revision::newFromPageId( $this->getId(), $latest, $flags );
                } else {
-                       $flags = 0;
+                       $dbr = wfGetDB( DB_REPLICA );
+                       $revision = Revision::newKnownCurrent( $dbr, $this->getId(), $latest );
                }
-               $revision = Revision::newFromPageId( $this->getId(), $latest, $flags );
+
                if ( $revision ) { // sanity
                        $this->setLastEdit( $revision );
                }